home *** CD-ROM | disk | FTP | other *** search
- ;
- ; Da Smallest Fade-in and Fade-out routine.
- ;
-
- ideal
- p286n
-
- segment code
- assume cs:code
-
- org 100h
-
- Start: call write_palette
- push 0b800h
- pop es
- mov si,offset Screen
- mov di,0
- mov cx,1322
- call uncrunch
-
-
- mov bp,31
- fade_in_loop: call fade_in
- call write_palette
- dec bp
- jnz fade_in_loop
-
- xor ax,ax
- int 16h
-
- mov bp,31
- fade_out_loop: call fade_out
- call write_palette
- dec bp
- jnz fade_out_loop
-
- mov ax,3
- int 10h
- mov ax,4c00h
- int 21h
-
- proc fade_in
- mov bx,0
- @@fade1: mov al,[palette+bx]
- mov dl,[pal_buf+bx]
- sub al,dl
- cmp al,0
- je no_inc
- cmp al,1
- je @@f1
- inc [pal_buf+bx]
- @@f1:
- inc [pal_buf+bx]
- no_inc: inc bx
- cmp bx,768
- jne @@fade1
- ret
- endp fade_in
-
- proc fade_out
- mov bx,0
- @@fade2: cmp [pal_buf+bx],0
- je no_dec
- cmp [pal_buf+bx],1
- je @@f2
- dec [pal_buf+bx]
- @@f2: dec [pal_buf+bx]
- no_dec: inc bx
- cmp bx,768
- jne @@fade2
- ret
- endp fade_out
-
- proc write_palette
- mov dx, 03DAh
- v1:
- in al, dx
- test al,08h
- jnz v1
- v2:
- in al, dx
- test al,08h
- jz v2
-
- mov dx,3c8h
- lea si,[pal_buf]
- mov cx,768
- xor al,al
- out dx,al
- inc dx
- rep outsb
- ret
- endp write_palette
-
- include "p_uncrnh.inc"
- include "screen.inc"
- include "palette.inc"
- pal_buf db 768 dup(0)
- ends code
- end start
-
-
-
-
-